/**
 * 版权所有(C)，上海勾芒信息科技，2016，所有权利保留。
 * 
 * 项目名：	car-web
 * 文件名：	Handler.java
 * 模块说明：	
 * 修改历史：
 * 2016年11月16日 - Debenson - 创建。
 */
package com.alex.wechat.core.handler;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.stereotype.Component;

/**
 * 标识微信事件处理器。
 * 
 * @author Debenson
 * @since 0.1
 */
@Target({
    ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface WxHandler {

  /**
   * 事件名称。
   * 
   * @return
   * @see {@link me.chanjar.weixin.common.api.WxConsts#EVT_*}
   */
  String value() default "";

  /**
   * 优先级，值越大优先级越高。
   * 
   * @return
   */
  int priority() default 0;

  /**
   * 是否结束路由
   * 
   * @return
   */
  boolean end() default true;

  /**
   * 是否异步执行
   * 
   * @return
   */
  boolean async() default false;

  /**
   * 微信推送过来的消息的类型，和发送给微信xml格式消息的消息类型
   * 
   * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_*}
   * 
   * @return
   */
  String msgType() default "";

  /**
   * 微信公众平台推送过来的消息的类型。
   * 
   * {@link com.gomore.wechat.mp.config.WxConsts#INFO_TYPE_*}
   * 
   * @return
   */
  String infoType() default "";

  /**
   * 账户类型
   * 
   * @return
   */
  WxAccountType accountType() default WxAccountType.MP;

}
